1. Field of the Invention
The present invention relates to networks and, more specifically, to a system for routing data through a network.
2. Background
The flow of data through a network is accomplished by transmitting data from one network node to another until the destination node is reached. Various protocols are available for transmitting data through a network. The protocol selected may be based on the type of network, the network topology, the type of data flowing through the network, and other factors. Two different classes of routing protocols are available for transmitting data through a network: unicast routing protocols and multicast routing protocols. Unicast routing protocols transmit data from a single source node to a single destination node. Multicast routing protocols transmit data from one or more source nodes to multiple destination nodes. Typically, the multiple destination nodes are members of a multicast group such that each member of the group receives data addressed to the group. Multicast routing protocols allow the sending nodes to transmit data to a single multicast address identifying the multicast group rather than generating separate packets or data flows for each destination node in the group.
Multicast routing protocols utilize multicast distribution trees to identify multicast group members and paths from the source node to each group member. A separate multicast distribution tree is typically provided for each sending node in a multicast group. Multicast distribution trees are updated in response to changes in network topology and changes in multicast group membership. For example, an existing multicast distribution tree may be expanded when new multicast group members are added. An existing multicast distribution tree may be reduced, or pruned, if existing group members are removed from a multicast group.
Various mechanisms are available for controlling the maintenance of multicast distribution trees and controlling the flow of multicast data through a network. Known multicast routing protocols use a "core" or "rendezvous point" for both controlling the maintenance of multicast distribution trees and controlling the flow of data in a multicast session. The core or rendezvous point is a particular node in the network responsible for maintaining and updating the multicast distribution tree. Additionally, the core or rendezvous point is responsible for handling the flow of data to all multicast group members. By combining the control and data flow operations in a single node, a failure in that control node will cause disruption of both the control functions and the data flow associated with the multicast session.
Other known multicast routing protocols distribute multicast group membership information to all nodes in the network or network area, thereby avoiding the use of a single node responsible for both control and data flow. By distributing multicast group membership information to all nodes, each node in the network is capable of calculating the multicast distribution tree as needed. This distribution of group membership information requires that each node store information related to all multicast sessions, regardless of whether the node is actually participating in the particular multicast session. By requiring distribution of group membership information to every node, this system increases the overall traffic flowing through the network. Additionally, the distribution of group membership information to every node increases the amount of information which must be stored by each node in the network. Thus, network nodes may require additional storage facilities to maintain the various multicast information. As mentioned above, each node receives and stores multicast group information regardless of whether the node is actually participating in the particular multicast session. Therefore, much of the information transmitted to and stored by a particular node may not be used by the node, thereby resulting in the transmission and storage of unnecessary information.
It is therefore desirable to provide a system that does not needlessly transmit multicast group information to all nodes in a network. Furthermore, a robust system would eliminate the single point of failure caused by combining multicast control and data flow operations into a single network node.